package file;

import java.io.File;

/** java.io.File
 * File 的每一个实例用于表示硬盘上的一个文件或目录（实际表示的是一个抽象路径）
 * 使用File 可以：
 * 1，访问文件或目录的属性信息
 * 1，创建/删除文件和目录
 * 3，访问目录的内容
 *
 * 注意File不能访问文件数据
 * */
public class FileDemo {
    public static void main(String[] args) {
   // File file = new File(   里面是文件路径) ;
      //File file = new File("C:/Users/刘立新/IdeaProjects/jsd2407/demo.txt");//绝对路径  利用率不高
        //相对路径   "./"  表示当前目录，在IDEA中执行时表示的是当前项目目录
        //实际开发中都用的相对路径
        // File file = new File("./demo.txt");
       File file = new File("demo.txt");//默认前面有./,也是相当于当前项目目录
         System.out.println("文件名:"+file.getName());//获取文件名
         System.out.println("文件大小:"+file.length()+"个字节");//获取文件大小
         System.out.println("是否可读:"+file.canRead());//是否可读
         System.out.println("是否可写"+file.canWrite());//是否可写
         System.out.println("是否隐藏:"+file.isHidden());///是否隐藏
         System.out.println("文件是否存在:"+file.exists());//文件是否存在
    }
}
//File 的输入（input）和输出（output）,和人们的认知是反着的
//输入是用来读的,而输出是用来写的；
//输入输出的参照物是我们的程序
//进到程序中就是输入input，从程序中输出output,一定是相当于程序而言的
//流（stream）是我们连接程序的和另一端设备的一根管道，通过这个管道来进行读写
//角度一定是程序设备到程序创建输入流，程序到设备输出流
//输入流：FileInputStream  是超类（父类）
//输出流：FileOutputStream
//文件到程序的叫做文件输入流   可从硬盘中将数据读取到内存中使程序恢复原有状态
//程序到文件的叫做文件输出流   可将数据从内存写入硬盘文件中可以将数据持久保存
//文件流以字节为单位读写文件数据
//文件流是实际连接程序与硬盘中文件得到管道 用于读写文件数据的流
//写            output       从程序中输出到文件    文件输出流      .write()
//读            input        从文件输入到程序     文件输入流       .read()
